import java.util.LinkedList;
import java.util.Queue;

public class demo2 {
    //图像渲染
    int[] dx = {0,0,1,-1};
    int[] dy = {1,-1,0,0};
    public int[][] floodFill(int[][] image, int sr, int sc, int color) {
        int prev = image[sr][sc];
        if(prev == color) return image;
        int n = image.length,m =image[0].length;
        Queue<int[]> q = new LinkedList<>();
        q.add(new int[]{sr,sc});
        while(!q.isEmpty()){
           int[] t = q.poll();
           int a = t[0],b = t[1];
           image[a][b] = color;
           for (int i = 0;i < 4;i++){
             int x = a+dx[i],y = b+dy[i];
               if ( x >= 0 && x <n && y >= 0 && y < m && image[x][y] == prev){
                   q.add(new int[]{x,y});
               }
           }
        }
        return image;
    }
}
